// 作用:
// 专门处理movie-list.vue中的数据部分的代码
// 将movie-list.vue组件中数据处理部分的代码提取到movielist.js模块中

import jsonp from 'jsonp'

const movielist = {
  // 1. 要在模块属性声明的位置,指定命名空间
  namespaced:true,
  state: {
    title:'',
    subjects:[]
  },
  // 方法
  // 修改state中title和subjects的方法
  mutations: {
    setData(state,payload){
      state.title = payload.title
      state.subjects = payload.subjects
    }
  },
  // 异步方法(ajax)
  // 豆瓣接口支持jsonp请求
  // axios本身不支持jsonp
  // 通过包jsonp发请求
  actions: {
    setData(context,payload){
      // console.log(context)
      const path = context.rootState.route.path
      // payload -> {path:this.$route.path}
      // console.log(payload)
      jsonp(`http://api.douban.com/v2/movie${path}`,null,(err,data)=>{
        // console.log(data)
      context.commit('setData',{
        title:data.title,
        subjects:data.subjects
      })

      })
    }
  }
}

export default movielist


// vuex去管理路由中的数据 $route .path fullpath等
// vuex只能管理组件中数据 title subjects
// vuex-router-sync
// 插件: 让vuex可以管理路由对象中的数据
